
\begin{definition}[Targeted delivery request]\label{def:targeted-delivery}
\begin{lstlisting}[language=buzz1]
// /targeted.delivery

define type envelope
    id        segment
    signature crypto/signature


define function wrap address
    ?by @key crypto
    to @targets []target
as
    @key = crypto/random  if no @key
    @n = crypto/mine @n such that
        @targets any is prefix of
            hash @n and @key account
    @sig = crypto/sign hash @n and @address 
        by @key 
    envelope{ @n, @sig  }            

\end{lstlisting}
\end{definition}

\begin{definition}[Prod missing chunk notification with recovery request]\label{def:recovery-request}
c\begin{lstlisting}[language=buzz1]
// /recovery

define type request
    address
    envelope
    
define function request address
    with @response bool
    to @targets 
as  
    @request = request{ @address }
    if @response then
        @request envelope =
            targeted.delivery/wrap @address by @key to @targets
    pss/send @request bytes about "RECOVERY" to @targets
    
    

\end{lstlisting}
\end{definition}

\begin{definition}[Recovery response]\label{def:recovery}
\begin{lstlisting}[language=buzz1]


    

\end{lstlisting}
\end{definition}